home *** CD-ROM | disk | FTP | other *** search
/ Aminet 7 / Aminet 7 - August 1995.iso / Aminet / comm / net / plip_3812src.lha / plip / src / rt.asm < prev    next >
Assembly Source File  |  1995-03-24  |  2KB  |  122 lines

  1. ;
  2. ; romtag for sana2par.device
  3. ;
  4.  
  5.     xref    _SysBase
  6.     xref    _DOSBase
  7.     xref    _UtilityBase
  8.  
  9.     section    "text",code
  10.  
  11.     xref    _DevOpen
  12.     xref    _DevClose
  13.     xref    _DevExpunge
  14.     xref    _DevBeginIO
  15.     xref    _DevAbortIO
  16. ;    xref    _DevInit
  17. ;    xref    _LoadPrefs
  18.  
  19.     include "exec/types.i"
  20.     include "exec/devices.i"
  21.     include "exec/initializers.i"
  22.     include    "exec/resident.i"
  23.     include    "exec/tasks.i"
  24.     include "exec/libraries.i"
  25.  
  26. call    MACRO
  27.     xref    _LVO\1
  28.     jsr    _LVO\1(a6)
  29.     ENDM
  30.  
  31. ; load error
  32. error:
  33.     moveq    #-1,d0
  34.     rts
  35.  
  36. romtag:
  37.     dc.w    RTC_MATCHWORD
  38.     dc.l    romtag
  39.     dc.l    EndCode
  40.     dc.b    RTF_AUTOINIT
  41.     dc.b    VERSION,NT_DEVICE,0
  42.     dc.l    devname
  43.     dc.l    devid
  44.     dc.l    Init
  45.  
  46. devname: dc.b "plip.device",0
  47.     dc.b    0,"$VER: "
  48. devid: dc.b "plip.device 38.12 (24.3.95)"
  49.     dc.b    "by Oliver Wagner & Michael Balzer, S2_DEVICEQUERY fixed by R. Jeremy James",13,10,0
  50.     ds.w    0
  51.  
  52. VERSION equ 38
  53. REVISION equ 12
  54.  
  55.     STRUCTURE    MyDev,LIB_SIZE
  56.     UBYTE    md_Flags
  57.     UBYTE    md_Pad1
  58.     ULONG    md_SegList
  59.     LABEL    MyDev_Sizeof
  60. Init:
  61.     dc.l    MyDev_Sizeof
  62.     dc.l    functable,datatable,initroutine
  63.  
  64. functable:
  65.     dc.l    _DevOpen
  66.     dc.l    _DevClose
  67.     dc.l    _DevExpunge
  68.     dc.l    error
  69.     dc.l    _DevBeginIO
  70.     dc.l    _DevAbortIO
  71. * private device jump extension
  72.     dc.l    -1
  73. datatable:
  74.     INITBYTE    LN_TYPE,NT_DEVICE
  75.     INITLONG    LN_NAME,devname
  76.     INITBYTE    LIB_FLAGS,LIBF_SUMUSED!LIBF_CHANGED
  77.     INITWORD    LIB_VERSION,VERSION
  78.     INITWORD    LIB_REVISION,REVISION
  79.     INITLONG    LIB_IDSTRING,devid
  80.     dc.w    0
  81.  
  82.     xref    __BSSBAS
  83.     xref    __BSSLEN
  84.     xref    _LinkerDB
  85.  
  86.     lea    __BSSBAS,a0
  87.     add.l    __BSSLEN,d0
  88. initroutine:
  89. ; d0 = devbase, a0=seglist, a6=sysbase
  90.     movem.l    a1/d1/a0/d0/a4,-(sp)
  91.     move.l    d0,a1
  92.     move.l    a0,md_SegList(a1)
  93.     lea    _LinkerDB,a4
  94.     move.l    a6,_SysBase(a4)
  95.  
  96.     lea    utilityname(pc),a1
  97.     jsr    -408(a6)    ; openlib
  98.     move.l    d0,_UtilityBase(a4)
  99.     beq.s    initerror
  100.  
  101.     lea    dosname(pc),a1
  102.     jsr    -408(a6)    ; openlib
  103.     move.l    d0,_DOSBase(a4)
  104.     beq.s    initerror
  105.  
  106.     movem.l    (sp)+,d0/d1/a0/a1/a4
  107.     rts
  108.  
  109. ; init failed...
  110. initerror:
  111.     movem.l    (sp),d0/d1/a0/a1/a4
  112.     moveq    #0,d0
  113.     rts
  114.  
  115. EndCode:
  116. utilityname:    dc.b    "utility.library",0
  117. dosname:
  118.         dc.b    "dos.library",0
  119.     ds.w    0
  120.  
  121.     END
  122.